﻿<?xml version="1.0" encoding="utf-8" ?>
<schema 
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:maml="http://ddue.schemas.microsoft.com/authoring/2003/5"
		xmlns:doc="http://ddue.schemas.microsoft.com/authoring/internal"
        targetNamespace="http://ddue.schemas.microsoft.com/authoring/2003/5" 
        blockDefault="#all" 
        elementFormDefault="qualified" 
        attributeFormDefault="unqualified"
        xml:lang="en"
    >

    <!-- Schema documentation -->
    <annotation>
        <documentation>
            This schema describes MAML, the Microsoft Assistance Markup Language.
            MAML is intended for software documentation. In particular, it is 
            intended to accomodate the needs of Microsoft documentation.
        </documentation>
        <documentation>
            The schema is broken into three main areas: end user, developer and
            IT Pro. These areas adequaltely categorize Microsoft
            documentation.
        </documentation>
        <documentation>
         The namespace uri for this version of Maml is: http://ddue.schemas.microsoft.com/authoring/2003/5.
         Each backwards-incompatible revision to Maml will require that the date fields be appropriately
         incremented in uri of the updated version of the Maml schema.
        </documentation>
    </annotation>

    <annotation>
        <documentation>
            This portion of the schema was created by alexstoc in April 2003.
        </documentation>
    </annotation>
    
    <include schemaLocation="base.xsd"/>

    <complexType name="programmingLanguageType" mixed="false">
        <simpleContent>
            <extension base="maml:devLanguagesType"/>
        </simpleContent>
    </complexType>
    
    <element name="programmingLanguage" type="maml:programmingLanguageType">
        <annotation>
            <documentation>
            This element is used to hold a programming language.
            </documentation>
            <appinfo>
                <doc:localizable>false</doc:localizable>
				<doc:type>paragraph</doc:type>
			</appinfo>
        </annotation>
    </element>
    
    <simpleType name="operatingSystemsStringType">
        <restriction base="token">
            <enumeration value="Win95"/>                    <!--Windows 95-->
            <enumeration value="Win98"/>                    <!--Windows 98-->
            <enumeration value="Win98Se"/>                  <!--Windows 98 Second Edition-->
            <enumeration value="WinMe"/>                    <!--Windows Millennium Edition-->
            <enumeration value="WinNt4Server"/>             <!--Windows NT Server 4.0-->
            <enumeration value="WinNt4Workstation"/>        <!--Windows NT Workstation 4.0-->
            <enumeration value="Win2kProfessional"/>        <!--Windows 2000 Professional-->
            <enumeration value="Win2kServer"/>              <!--Windows 2000 Server-->
            <enumeration value="Win2kAdvanced"/>            <!--Windows 2000 Advanced Server-->
            <enumeration value="Win2kDatacenter"/>          <!--Windows 2000 Datacenter Server-->
            <enumeration value="Win2kServerApplianceKit"/>  <!--Windows 2000 with Server Appliance Kit-->
            <enumeration value="WinXpHome"/>                <!--Windows XP Home Edition-->
            <enumeration value="WinXpProfessional"/>        <!--Windows XP Professional-->
            <enumeration value="WinXpMediaCenter"/>         <!--Windows XP Media Center-->
            <enumeration value="WinXpTablet"/>              <!--Windows XP Tablet PC-->
            <enumeration value="WinXpEmbedded"/>            <!--Windows XP Embedded-->
            <enumeration value="Win2003Server"/>            <!--Windows Server 2003-->
            <!--<enumeration value="WinCeDotNet"/> -->      <!--Windows CE .NET--> 
            <enumeration value="NETCF"/>              	    <!--Windows CE .NET-->
        </restriction>
    </simpleType>

    <simpleType name="operatingSystemFamiliesStringType">
        <restriction base="token">
            <enumeration value="Win9xFamily"/>              <!--Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition-->
            <enumeration value="WinNt4Family"/>             <!--Windows NT Server 4.0, Windows NT Workstation 4.0-->
            <enumeration value="Win2kFamily"/>              <!--Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Datacenter Server-->
            <enumeration value="WinXpFamily"/>              <!--Windows XP Home Edition, Windows XP Professional, Windows XP Media Center, Windows XP Tablet PC-->
            <!--<enumeration value="WinCeFamily"/> -->             <!--Windows CE .NET (and previous versions)-->
        </restriction>
    </simpleType>

    <simpleType name="platformStringType">
        <union memberTypes="maml:operatingSystemsStringType maml:operatingSystemFamiliesStringType">
            <simpleType>
                <restriction base="token">
                    <enumeration value="EcmaCli"/>           <!--Common Language Infrastructure (CLI) Standard-->
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    
    <complexType name="platformType" mixed="false">
        <simpleContent>
            <extension base="maml:platformStringType"/>
        </simpleContent>
    </complexType>

    <element name="platform" type="maml:platformType">
        <annotation>
            <documentation>
            This element holds the identifier for a platform (such as an operating system version).
            </documentation>
            <appinfo>
                <doc:localizable>false</doc:localizable>
				<doc:type>paragraph</doc:type>
			</appinfo>
        </annotation>
    </element>
    
    <simpleType name="legacyPlatformStringType">
        <restriction base="token">
            <enumeration value="Win"/>
            <enumeration value="Mac"/>
        </restriction>
    </simpleType>
    
    <complexType name="legacyPlatformType" mixed="false">
        <simpleContent>
            <extension base="maml:legacyPlatformStringType"/>
        </simpleContent>
    </complexType>
    
    <element name="legacyPlatform" type="maml:legacyPlatformType">
        <annotation>
            <documentation>
            This element holds the identifier for a platform used in conditional markup.
            </documentation>
            <appinfo>
                <doc:localizable>false</doc:localizable>
				<doc:type>paragraph</doc:type>
			</appinfo>
        </annotation>
    </element>
    
    <simpleType name="legacyMediumStringType">
        <restriction base="token">
            <enumeration value="CD"/>
            <enumeration value="Online"/>
            <enumeration value="Print"/>
            <enumeration value="VSonly"/>
            <enumeration value="SDKonly"/>
        </restriction>
    </simpleType>
    
    <complexType name="legacyMediumType" mixed="false">
        <simpleContent>
            <extension base="maml:legacyMediumStringType"/>
        </simpleContent>
    </complexType>
    
    <element name="legacyMedium" type="maml:legacyMediumType">
        <annotation>
            <documentation>
            This element holds the identifier for a medium used in conditional markup.
            </documentation>
            <appinfo>
                <doc:localizable>false</doc:localizable>
				<doc:type>paragraph</doc:type>
			</appinfo>
        </annotation>
    </element>
    
    <simpleType name="legacyUserDefinedStringType">
        <restriction base="token">
            <enumeration value="Ent"/>
            <enumeration value="Pro"/>
            <enumeration value="Std"/>
            <enumeration value="Comment"/>
            <enumeration value="Rad"/>
            <enumeration value="Net"/>
            <enumeration value="None"/>
            <enumeration value="Jsharp"/>
            <enumeration value="Vb"/>
            <enumeration value="Cplus"/>
            <enumeration value="Csharp"/>
            <enumeration value="Office"/>
            <enumeration value="VS"/>
            <enumeration value="SqlServer"/>
            <enumeration value="Js7"/>
            <enumeration value="Js7net"/>
            <enumeration value="Vblr7"/>
            <enumeration value="Vblr7net"/>
        </restriction>
    </simpleType>
    
    <complexType name="legacyUserDefinedType" mixed="false">
        <simpleContent>
            <extension base="maml:legacyUserDefinedStringType"/>
        </simpleContent>
    </complexType>
    
    <element name="legacyUserDefined" type="maml:legacyUserDefinedType">
        <annotation>
            <documentation>
            This element holds the identifier for a user-defined condition used in conditional markup.
            </documentation>
            <appinfo>
                <doc:localizable>false</doc:localizable>
				<doc:type>paragraph</doc:type>
			</appinfo>
        </annotation>
    </element>
    
    <complexType name="platformsType" mixed="false">
        <sequence>
            <element ref="maml:platform" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
    </complexType>
    
    <element name="platforms" type="maml:platformsType">
        <annotation>
            <documentation>
            This element is a collection of platform elements.
            </documentation>
            <appinfo>
                <doc:localizable>n/a</doc:localizable>
				<doc:type>structure</doc:type>
			</appinfo>
        </annotation>
    </element>

    

</schema>